#pragma once

#include "Primitive.h"
#include "Plane.h"
#include "Ray.h"
#include "Vector3.h"

namespace RayTracer
{

	class CPlanePrimitive : public CPrimitive
	{
	public:
		CPlanePrimitive(const CVector3& Normal, const float& D);
		virtual ~CPlanePrimitive(void);

		CPlane getPlane() { return m_Plane; }

		virtual PrimitiveType getType() { return PLANE; }
		virtual IntersectionStatus IntersectRay(CRay& ray, float& dist);
		virtual CVector3 getNormal(const CVector3& pos);

	private:
		CPlane m_Plane;
	};

}